﻿Imports EVOLTA.Promocion.Bl.Bc
Imports EVOLTA.Promocion.Bl.Be

Partial Class Reportes_SeparacionesTemp
    Inherits System.Web.UI.Page

    Private separaciones As List(Of EseparacionVenta) = Nothing
    Private separacionesDetalles As List(Of EseparacionVentaDetalle)

#Region "       Formulario                          "
    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        Response.CacheControl = "no-cache"
        Response.AddHeader("Pragma", "no-cache")
        Response.Expires = -1
        '***********************************************************'
        If Not IsPostBack Then
            cargarVendedor()
        End If
    End Sub
    Private Sub cargarVendedor()
        selVendedor.DataSource = Rvendedor.SeleccionarXEstado(Me.Master.descEmpresa, True)
        selVendedor.DataTextField = "NombresCompletos"
        selVendedor.DataValueField = "idVendedor"
        selVendedor.DataBind()
        upVendedor.Update()
    End Sub
    Protected Sub btnBuscar_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnBuscar.Click
        If txtFchInicio.Text.Length > 0 AndAlso txtFchFin.Text.Length > 0 Then
            Dim venta As New EseparacionVenta
            With venta
                .idProyecto = Me.Master.idProyecto
                .idEtapa = Me.Master.idEtapa
                .Evendedor = New Evendedor
                .idVendedor = selVendedor.Value
                .fchInicio = txtFchInicio.Text
                .fchFin = txtFchFin.Text
                .filtro = txtCliente.Value
                .estado = selEstado.value
            End With
            separaciones = RseparacionVenta.ReporteSeparacionTemporal(Me.Master.descEmpresa, False, venta)
            Session("separacionesLista") = separaciones
            separacionesDetalles = RseparacionVentaDetalle.ReporteSeparacionDetalleTemporal(Me.Master.descEmpresa, False, venta)
            Session("separacionesListaDetalle") = separacionesDetalles
            If Not separaciones Is Nothing Then
                egvSeparacionVenta.DataSource = separaciones
                egvSeparacionVenta.DataBind()
                upnSeparacionVenta.Update()
                lblCantidadTotalSeparación.Text = String.Format(": {0}", separaciones.Count.ToString)
                lblTotalPrecioVenta.Text = String.Format(": {0:###,###,##00.00}", (From sep As EseparacionVenta In separaciones _
                                                                                   Select sep.totalPrecioVenta).Sum())
                lblTotalSeparación.Text = String.Format(": {0:###,###,##0.000}", (From sep As EseparacionVenta In separaciones _
                                                                                  Select sep.totalSeparacion).Sum())
            End If
        End If
    End Sub
    Protected Sub btnLimpiar_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnLimpiar.Click
        txtFchInicio.Text = ""
        upFchInicio.Update()
        txtFchFin.Text = ""
        upFchFin.Update()
        egvSeparacionVenta.DataSource = Nothing
        upnSeparacionVenta.Update()
    End Sub
    Protected Sub btnExportar_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnExportar.Click
        separaciones = Session("separacionesLista")
        separacionesDetalles = Session("separacionesListaDetalle")
        If Not separaciones Is Nothing Then
            Dim fileName As String = "ConsultaProforma{0}.xls"
            fileName = String.Format(fileName, DateTime.Now.ToShortDateString())
            Dim Response As HttpResponse = HttpContext.Current.Response
            Response.ContentType = "application/vnd.ms-excel"
            Response.Charset = "UTF-8"
            Response.ContentEncoding = System.Text.Encoding.Default
            Response.AddHeader("Content-Disposition", "attachment; filename=" + fileName)

            Response.Write("N° Separación") : Response.Write(vbTab)
            Response.Write("Fecha") : Response.Write(vbTab)
            Response.Write("Cliente") : Response.Write(vbTab)
            Response.Write("Dni Cliente") : Response.Write(vbTab)
            Response.Write("Teléfonos") : Response.Write(vbTab)
            Response.Write("Precio Venta") : Response.Write(vbTab)
            Response.Write("Monto Separación") : Response.Write(vbTab)
            Response.Write("Inicial") : Response.Write(vbTab)
            Response.Write("Saldo Precio") : Response.Write(vbTab)
            Response.Write("Forma Pago") : Response.Write(vbTab)
            Response.Write("Entidad Financiera") : Response.Write(vbTab)
            Response.Write("Fch. Vencimiento") : Response.Write(vbTab)
            Response.Write("Observación") : Response.Write(vbTab)
            Response.Write(vbCrLf)

            Dim value As String
            Dim varIdSeparacion As Int32 = 0
            For Each venta In separaciones
                value = venta.idSeparacionVenta
                varIdSeparacion = venta.idSeparacionVenta
                Response.Write(value) : Response.Write(vbTab)

                value = venta.fchSeparacion
                Response.Write(value) : Response.Write(vbTab)

                value = venta.nombreCompletosCliente
                Response.Write(value) : Response.Write(vbTab)

                value = venta.Ecliente.nroDocumento
                Response.Write(value) : Response.Write(vbTab)

                value = venta.Ecliente.Telefonos
                Response.Write(value) : Response.Write(vbTab)

                value = String.Format("{0:#,###,##0.00}", venta.totalPrecioVenta)
                Response.Write(value) : Response.Write(vbTab)

                value = String.Format("{0:#,###,##0.00}", venta.totalSeparacion)
                Response.Write(value) : Response.Write(vbTab)

                value = String.Format("{0:#,###,##0.00}", venta.ctaInicial)
                Response.Write(value) : Response.Write(vbTab)

                value = String.Format("{0:#,###,##0.00}", venta.financiamiento)
                Response.Write(value) : Response.Write(vbTab)

                value = venta.descFormaPago
                Response.Write(value) : Response.Write(vbTab)

                value = venta.EentidadFin.descEntidadFin
                Response.Write(value) : Response.Write(vbTab)

                value = venta.fchVencimiento
                Response.Write(value) : Response.Write(vbTab)

                value = venta.observacion
                Response.Write(value) : Response.Write(vbCrLf)

                Dim LseparacionDetalles = From pd In separacionesDetalles _
                                          Where pd.idSeparacionVenta = CType(varIdSeparacion, Int32) _
                                          Select pd

                If Not LseparacionDetalles Is Nothing Then
                    Response.Write(vbTab)
                    Response.Write("Edificio") : Response.Write(vbTab)
                    Response.Write("Modelo") : Response.Write(vbTab)
                    Response.Write("Descripción Inmueble") : Response.Write(vbTab)
                    Response.Write("N° Inmueble") : Response.Write(vbTab)
                    Response.Write("Valor Venta") : Response.Write(vbTab)
                    Response.Write(vbCrLf)

                    Dim valueDetalle As String = Nothing
                    For Each separacionDetalle In LseparacionDetalles

                        Response.Write(vbTab)
                        value = separacionDetalle.descEdificio
                        Response.Write(value) : Response.Write(vbTab)

                        value = separacionDetalle.nomModelo
                        Response.Write(value) : Response.Write(vbTab)

                        value = separacionDetalle.EtpoInmueble.descTpoInmueble
                        Response.Write(value) : Response.Write(vbTab)

                        value = separacionDetalle.nroInmueble
                        Response.Write(value) : Response.Write(vbTab)

                        value = String.Format("{0:#,###,##0.00}", separacionDetalle.valorVenta)
                        Response.Write(value)
                        Response.Write(vbCrLf)
                    Next
                    Response.Write(vbCrLf)
                End If
            Next
            Response.End()
        Else
            Dim jsMensaje As String = Nothing
            jsMensaje = "<script>javascript:alert(' La consulta no pudo ser procesada.  Por favor inténtelo de nuevo.');</script>)"
            Controls.Add(New LiteralControl(jsMensaje))
        End If
    End Sub
#End Region

#Region "       Venta Detalle                       "
    Protected Sub egvSeparacionVenta_PageIndexChanging(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewPageEventArgs) Handles egvSeparacionVenta.PageIndexChanging
        separaciones = Session("separacionesLista")
        If Not separaciones Is Nothing Then
            egvSeparacionVenta.DataSource = separaciones
            egvSeparacionVenta.PageIndex = e.NewPageIndex
            egvSeparacionVenta.DataBind()
            upnSeparacionVenta.Update()
        End If
    End Sub
    Protected Sub egvSeparacionVenta_RowCreated(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) _
        Handles egvSeparacionVenta.RowCreated
        If e.Row.RowType = DataControlRowType.DataRow Then
            e.Row.Attributes.Add("OnMouseOver", "Resaltar_On(this);")
            e.Row.Attributes.Add("OnMouseOut", "Resaltar_Off(this);")

            Dim strUidSeparacion As String = DataBinder.Eval(e.Row.DataItem, "idSeparacionVenta").ToString()
            Dim egvDetalleSeparacion As GridView = CType(e.Row.FindControl("egvDetalleSeparacion"), GridView)
            AddHandler egvDetalleSeparacion.RowCreated, AddressOf egvDetalleSeparacion_RowCreated
            If strUidSeparacion.Length > 0 Then
                separacionesDetalles = Session("separacionesListaDetalle")
                Dim LVentaDetalles = From vd In separacionesDetalles _
                                        Where vd.idProyecto.ToString = Me.Master.idProyecto AndAlso _
                                              vd.idEtapa = Me.Master.idEtapa AndAlso _
                                              vd.idSeparacionVenta = CType(strUidSeparacion, Int32) _
                                        Select vd

                If separacionesDetalles.Count > 0 Then
                    egvDetalleSeparacion.DataSource = LVentaDetalles
                    Dim objFila As ExGridView.ExtGridViewRow = CType(e.Row, ExGridView.ExtGridViewRow)
                    objFila.ShowExpand = True
                End If
            End If
        End If
    End Sub
    Protected Sub egvDetalleSeparacion_RowCreated(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs)
        If e.Row.RowType = DataControlRowType.DataRow Then
            e.Row.Attributes.Add("OnMouseOver", "Resaltar_On(this);")
            e.Row.Attributes.Add("OnMouseOut", "Resaltar_Off(this);")
        End If
    End Sub
#End Region

End Class